From: Debian Qt/KDE Maintainers Date: Thu, 16 Apr 2020 17:05:12 +0000 (+0100) Subject: Ignore non-existent .ui file dependencies X-Git-Tag: archive/raspbian/5.12.5+dfsg-10+rpi1^2~15 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=d0234f0d2938010f410dd6baec0792b7e147072e;p=qtbase-opensource-src.git Ignore non-existent .ui file dependencies Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=90779d96adfa51a3 Last-Update: 2019-11-05 Commit 80dea664 broke .ui files with global includes that are not part of the project, because we blindly added every file path that falls out of 'uic -d' as dependency. Introduce the extra compiler CONFIG flag dep_existing_only to bring back the old behavior that ignores non-existent dependencies and set it for uic. Gbp-Pq: Name uic_global_includes.diff --- diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf index 1cedce5ae..a5df0c7e8 100644 --- a/mkspecs/features/uic.prf +++ b/mkspecs/features/uic.prf @@ -9,7 +9,7 @@ uic.depend_command = $$QMAKE_UIC_DEP -d ${QMAKE_FILE_IN} uic.output = $$UI_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} uic.input = FORMS uic.variable_out = GENERATED_FILES -uic.CONFIG += no_link target_predeps dep_lines +uic.CONFIG += no_link target_predeps dep_lines dep_existing_only uic.name = UIC ${QMAKE_FILE_IN} silent:uic.commands = @echo uic ${QMAKE_FILE_IN} && $$uic.commands QMAKE_EXTRA_COMPILERS += uic diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index 2e2962f86..cccf48a04 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -4728,6 +4728,10 @@ \li explicit_dependencies \li The dependencies for the output only get generated from the depends member and from nowhere else. + \row + \li dep_existing_only + \li Every dependency that is a result of .depend_command is checked for + existence. Non-existing dependencies are ignored. \row \li dep_lines \li The output from the .depend_command is interpreted to be one file diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 11623cd14..fcd0ccd43 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -1984,6 +1984,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) } t << endl; } + const bool existingDepsOnly = config.contains("dep_existing_only"); QStringList tmp_dep = project->values(ProKey(*it + ".depends")).toQStringList(); if (config.indexOf("combine") != -1) { if (tmp_out.contains(QRegExp("(^|[^$])\\$\\{QMAKE_(?!VAR_)"))) { @@ -2025,6 +2026,8 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) warn_msg(WarnDeprecated, ".depend_command for extra compiler %s" " prints paths relative to source directory", (*it).toLatin1().constData()); + else if (existingDepsOnly) + file.clear(); else file = absFile; // fallback for generated resources } else { @@ -2110,6 +2113,8 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) warn_msg(WarnDeprecated, ".depend_command for extra compiler %s" " prints paths relative to source directory", (*it).toLatin1().constData()); + else if (existingDepsOnly) + file.clear(); else file = absFile; // fallback for generated resources } else {